**************************************************************************************
	;Header frs File-linken

	IFD	Flag_project
Flag_tekene	set 1
	ENDC
	IFND	Flag_tekene
Flag_tekene	set 0
	ENDC
	IFEQ	Flag_tekene
Flag_tekene	set 1
	include	Nutz_project
	ELSEIF
**************************************************************************************
	include	Binary/Tekkno/Tekkno_ene.src

TBumper_Obj0	EQU	Tekkno_Obj_0
TBumper_Obj1	EQU	Tekkno_Obj_1

TVentiH_Obj0	EQU	Tekkno_Obj_2
TVentiH_Obj1	EQU	Tekkno_Obj_3
TVentiH_Obj2	EQU	Tekkno_Obj_4
TVentiH_Obj3	EQU	Tekkno_Obj_5

TVentiH2_Obj0	EQU	Tekkno_Obj_70
TVentiH2_Obj1	EQU	Tekkno_Obj_71
TVentiH2_Obj2	EQU	Tekkno_Obj_72
TVentiH2_Obj3	EQU	Tekkno_Obj_73

TVentiV_Obj0	EQU	Tekkno_Obj_6
TVentiV_Obj1	EQU	Tekkno_Obj_7
TVentiV_Obj2	EQU	Tekkno_Obj_8
TVentiV_Obj3	EQU	Tekkno_Obj_9

TSpike_Obj0	EQU	Tekkno_Obj_10
TSpike_Obj1	EQU	Tekkno_Obj_11
TSpike_Obj2	EQU	Tekkno_Obj_12
TSpike_Obj3	EQU	Tekkno_Obj_13

TWater_Obj0	EQU	Tekkno_Obj_14
TWater_Obj1	EQU	Tekkno_Obj_15
TWater_Obj2	EQU	Tekkno_Obj_16
TWater_Obj3	EQU	Tekkno_Obj_17
TWater_Obj4	EQU	Tekkno_Obj_18
TWater_Obj5	EQU	Tekkno_Obj_19

TChick_Obj0	EQU	Tekkno_Obj_20
TChick_Obj1	EQU	Tekkno_Obj_21
TChick_Obj2	EQU	Tekkno_Obj_22
TChick_Obj3	EQU	Tekkno_Obj_23
TChick_Obj4	EQU	Tekkno_Obj_24
TChick_Obj5	EQU	Tekkno_Obj_25
TChick_Obj6	EQU	Tekkno_Obj_26

TPlatform_Obj0	EQU	Tekkno_Obj_27

TFish_Obj0	EQU	Tekkno_Obj_28
TFish_Obj1	EQU	Tekkno_Obj_29
TFish_Obj2	EQU	Tekkno_Obj_30
TFish_Obj3	EQU	Tekkno_Obj_31

TExtra_Obj0	EQU	Tekkno_Obj_32
TExtra_Obj1	EQU	Tekkno_Obj_33
TExtra_Obj2	EQU	Tekkno_Obj_34
TExtra_Obj3	EQU	Tekkno_Obj_43
TExtra_Obj4	EQU	Tekkno_Obj_44
TExtra_Obj5	EQU	Tekkno_Obj_45
TExtra_Obj6	EQU	Tekkno_Obj_46
TExtra_Obj7	EQU	Tekkno_Obj_47
TExtra_Obj8	EQU	Tekkno_Obj_48

TRocket_Obj0	EQU	Tekkno_Obj_35
TRocket_Obj1	EQU	Tekkno_Obj_36
TRocket_Obj2	EQU	Tekkno_Obj_37

TDrohne_Obj0	EQU	Tekkno_Obj_38
TDrohne_Obj1	EQU	Tekkno_Obj_39
TDrohne_Obj2	EQU	Tekkno_Obj_40

TFlame_Obj0	EQU	Tekkno_Obj_41
TFlame_Obj1	EQU	Tekkno_Obj_42

TButton_Obj0	EQU	Tekkno_Obj_49
TButton_Obj1	EQU	Tekkno_Obj_50

TDoor_Obj0	EQU	Tekkno_Obj_51
TDoor_Obj1	EQU	Tekkno_Obj_52		;Halbe Tr
TDoor_Obj2	EQU	Tekkno_Obj_53		;Hide Tr

TFire_Obj0	EQU	Tekkno_Obj_57
TFire_Obj1	EQU	Tekkno_Obj_58
TFire_Obj2	EQU	Tekkno_Obj_59
TFire_Obj3	EQU	Tekkno_Obj_60
TFire_Obj4	EQU	Tekkno_Obj_61
TFire_Obj5	EQU	Tekkno_Obj_62
TFire_Obj6	EQU	Tekkno_Obj_63
TFire_Obj7	EQU	Tekkno_Obj_64

**************************************************************************************
ST_FLYER	=021
ST_FLYER_LEFT	=022
ST_DSENFIRE	=024
ST_ROCKET	=025
ST_HUHN		=026
ST_HUHN_LEFT	=027
ST_HUHNFOOT1	=028
ST_HUHNFOOT2	=029
ST_HUHNPROP	=030
ST_FISH_RIGHT	=031
ST_FISH_LEFT	=032
ST_DOOR_LR_UP	=033
ST_DOOR_L_UP	=034
ST_DOOR_R_UP	=035
ST_DOOR_BUT_UP	=036
ST_VENTI_UP	=037
ST_VENTI_DOWN	=038
ST_VENTI_LEFT	=039
ST_VENTI_RIGHT	=040
ST_BUMPER_SOLID	=041
ST_BUMPER_NORM	=042
ST_STACHEL_01	=045
ST_STACHEL_02	=046
ST_STACHEL_03	=047
ST_STACHEL_04	=048
ST_STACHEL_05	=049
ST_STACHEL_06	=050
ST_BUT_DOOR_UP	=051	
ST_BUT_VENTI_ON	=052
ST_BUT_VENTI_OFF	=053	;ST_BUT_WATER_DOWN	=054	;ST_BUT_WATER_UP	=055
ST_BUT_WATER_UP_B	=056
ST_BUT_WATER_DOWN_B	=057	;ST_BUT_WATER_UP_DOWN_B	=058
ST_BUT_FREE_1		=059
ST_BUT_FREE_2	=060
ST_BUT_FREE_3	=061
ST_BUT_FREE_4	=062
ST_MOV_Y_WAIT	=071
ST_MOV_Y_MOVE	=072
ST_MOV_Y_FREE	=073
ST_MOV_X_WAIT	=074
ST_MOV_X_MOVE	=075
ST_MOV_X_FREE	=076
ST_MOV_W_WAIT	=077
ST_MOV_W_MOVE	=078
ST_MOV_W_NOTHING	=079
ST_MOV_NOTHING	=080
ST_MOV_K_2		=081
ST_MOV_K_3		=082
ST_FLAMES_Up_01	=086
ST_FLAMES_Up_02	=087
ST_FLAMES_Up_03	=088
ST_FLAMES_Up_04	=089
ST_FLAME_Up		=090
ST_EF_W_DOWN	=091
ST_EF_W_UP		=092
ST_WATER_COME	=093
ST_FONTNE	=094
**************************************************************************************
*-------------------------------------------------------------------------------------
ST_FISH_RIGHT_I:	dc.l	TFISH_Right_Init
		dc.w	32,32
		dc.l	TFish_Wait_Right_Anm
		dc.w	0,3
		dc.b	0,BOB_MID_PRIO
ST_FISH_LEFT_I:	dc.l	TFISH_Left_Init
		dc.w	32,32
		dc.l	TFish_Wait_Left_Anm
		dc.w	0,3
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
ST_VENTI_UP_I:	dc.l	Init_Venti_Up
		dc.w	16,48
		dc.l	Venti_Up_Off_Anim
		dc.w	0,1
		dc.b	BACK_ANIM,BOB_MID_PRIO
ST_VENTI_DOWN_I:	dc.l	Init_Venti_Down
		dc.w	16,48
		dc.l	Venti_Down_Off_Anim
		dc.w	0,1
		dc.b	BACK_ANIM,BOB_MID_PRIO
ST_VENTI_LEFT_I:	dc.l	Init_Venti_Left
		dc.w	48,16
		dc.l	Venti_Left_Off_Anim
		dc.w	0,1
		dc.b	BACK_ANIM,BOB_HI_PRIO
ST_VENTI_RIGHT_I:	dc.l	Init_Venti_Right
		dc.w	48,16
		dc.l	Venti_Right_Off_Anim
		dc.w	0,1
		dc.b	BACK_ANIM,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
ST_BUT_VENTI_OFF_I:	dc.l	I_Button_V_OFF
		dc.w	10,32
		dc.l	TeButton_Wait_AnimTab
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
ST_BUT_VENTI_ON_I:	dc.l	I_Button_V_ON
		dc.w	10,32
		dc.l	TeButton_Wait_AnimTab
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
ST_BUT_WATER_UP_B_I:	dc.l	I_Button_W_U_B
		dc.w	10,32
		dc.l	TeButton_Wait_AnimTab
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
ST_BUT_WATER_DOWN_B_I:	dc.l	I_Button_W_D_B
		dc.w	10,32
		dc.l	TeButton_Wait_AnimTab
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
ST_BUT_DOOR_UP_I:	dc.l	I_Button_Door_Up
		dc.w	10,32
		dc.l	TeButton_Wait_AnimTab
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
ST_FLAMES_Up_01_I:	dc.l	I_I_FLAMES_Up_01
		dc.w	32,32
		dc.l	Smoke_Up_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
ST_FLAMES_Up_02_I:	dc.l	I_I_FLAMES_Up_02
		dc.w	32,32
		dc.l	Smoke_Up_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
ST_FLAMES_Up_03_I:	dc.l	I_I_FLAMES_Up_03
		dc.w	32,32
		dc.l	Smoke_Up_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
ST_FLAMES_Up_04_I:	dc.l	I_I_FLAMES_Up_04
		dc.w	32,32
		dc.l	Smoke_Up_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
ST_FLAME_Up_I:	dc.l	Handle_FLAME_Up
		dc.w	38,16
		dc.l	Flame_Up_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
ST_HUHN_I:		dc.l	THuhn_Init
		dc.w	36,32
		dc.l	THuhn_Right_Anm
		dc.w	0,8
		dc.b	0,BOB_MID_PRIO
ST_HUHN_LEFT_I:	dc.l	THuhn_Init
		dc.w	36,32
		dc.l	THuhn_Left_Anm
		dc.w	0,8
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
ST_ROCKET_I:	dc.l	Shoot_Rout1
		dc.w	9,32
		dc.l	Shoot_AnimL
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO

ST_FLYER_I:		dc.l	Init_Flyer_Rout1
		dc.w	28,32
		dc.l	Flyer_Anim_Right
		dc.w	0,7
		dc.b	0,BOB_MID_PRIO
ST_FLYER_LEFT_I:	dc.l	Init_Flyer_RoutL
		dc.w	28,32
		dc.l	Flyer_Anim_Left
		dc.w	0,7
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
ST_MOV_W_NOTHING_I:	dc.l	I_Mover_WaterRout_1_N
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,-1
		dc.b	0,BOB_HI_PRIO
ST_MOV_W_MOVE_I:	dc.l	I_Mover_WaterRout_1_M
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,-1
		dc.b	0,BOB_HI_PRIO
ST_MOV_W_WAIT_I:	dc.l	I_Mover_WaterRout_1_W
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,-1
		dc.b	0,BOB_HI_PRIO
ST_MOV_Y_WAIT_I:	;96,300
		dc.l	I_Mover_Y_Rout_1_W
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
ST_MOV_Y_MOVE_I:	;96,300
		dc.l	I_Mover_Y_Rout_1_M
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
ST_MOV_X_WAIT_I:	;96,300
		dc.l	I_Mover_X_Rout_1_W
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
ST_MOV_X_MOVE_I:	;96,300
		dc.l	I_Mover_X_Rout_1_M
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
ST_MOV_NOTHING_I:	;96,300
		dc.l	I_Mover_Nothing
		dc.w	15,64
		dc.l	TMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
ST_BUMPER_I:	dc.l	Init_TBumper
		dc.w	28,32
		dc.l	TBumper_Wait_Anm
		dc.w	0,8
		dc.b	0,BOB_HI_PRIO
ST_DOOR_I:		dc.l	TTest_Init_Doors
		dc.w	64,16
		dc.l	TDoor_Anim_Norm
		dc.w	1,8
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
ST_STACHEL_01_I:
		dc.l	Init_Stachel_Norm
		dc.w	16,16
		dc.l	Stachel_Anim_Norm
		dc.w	0,30000
		dc.b	0,BOB_MID_PRIO

ST_STACHEL_02_I:
		dc.l	Init_Stachel_UD
		dc.w	16,16
		dc.l	Stachel_Anim_UD	;Zeiger auf nchste Anim
		dc.w	0,13
		dc.b	0,BOB_MID_PRIO
ST_STACHEL_03_I:
		dc.l	Init_Stachel_Wave_R
		dc.w	16,16
		dc.l	Stachel_Anim_Wave04
		dc.w	0,13
		dc.b	0,BOB_HI_PRIO
ST_STACHEL_04_I:
		dc.l	Init_Stachel_Wave_L
		dc.w	16,16
		dc.l	Stachel_Anim_Wave04
		dc.w	0,13
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
ST_FONTNE_I:	dc.l	Handle_Fontne
		dc.w	16,16
		dc.l	NullAnim
		dc.w	0,2000
		dc.b	0,BOB_HI_PRIO
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	MOVER TEKKNO
*-------------------------------------------------------------------------------------
Show_TekknoObject:	*--*>Show it
		move.w	#Tekkno_EnemyVRam/32,d3
		move.l	Bob_SigelInfo(a4),a0
		move.w	Bob_FlipStatus(a4),d2
		jsr	Show_Simple_Object
		rts
*-------------------------------------------------------------------------------------
*--------------	MOVER TEKKNO
*-------------------------------------------------------------------------------------
TMover_AnimTable:	dc.w	0
		dc.l	TPlatform_Obj0,0
		dc.w	ENTRY_END
		dc.l	TMover_AnimTable
*-------------------------------------------------------------------------------------
Mover_TGlobal:
		*--*>Global Routs for Mover Water
		lea	WorkRam,a2
		tst.b	Mover_TEMET_On(a4)
		beq.s	.Nothing
		tst	TEMET_in_Fontne(a2)
		beq.s	.Nothing
		clr.b	Mover_TEMET_On(a4)
		;rts
.Nothing


	*--*>Global Routs for Mover
		jsr	Test_Bob_Out
		move.l	Mover_Move_Routine(a4),a0
		jsr	(a0)
		*--*>Test Temet on Top
		jsr	Test_TEMET_On_Top
		*--*>ENDE
		jsr	Show_TekknoObject
		rts


*-------------------------------------------------------------------------------------
Mover_TGlobal_Water
		*--*>Global Routs for Mover Water
		lea	WorkRam,a2
		tst.b	Mover_TEMET_On(a4)
		beq.s	.Nothing
		tst	TEMET_in_Fontne(a2)
		beq.s	.Nothing
		clr.b	Mover_TEMET_On(a4)
		subq	#2,TEMET_X_Position(a2)
		;rts
.Nothing
		jsr	Test_Bob_Out
		move.l	Mover_Move_Routine(a4),a0
		jsr	(a0)
		*--*>Test Temet on Top
		move.b	Mover_TEMET_On(a4),d0
		move	d0,-(sp)
		jsr	Test_TEMET_On_Top
		move	(sp)+,d0
		*--*>Test if should Init Y Jump
		tst.b	d0
		beq.s	.TEMET_WAS_NOT_ON
.TEMET_WAS_ON	*--Temet war drauf
		tst.b	Mover_TEMET_On(a4)
		bne.s	.Go_Ende
		move	#WM_JUMP_END,Mover_Y_Offset(a4)
		bra.s	.Go_Ende
.TEMET_WAS_NOT_ON	*--Temet war nicht drauf
		tst.b	Mover_TEMET_On(a4)
		beq.s	.Go_Ende
		move	#WM_JUMP_ANF,Mover_Y_Offset(a4)
.Go_Ende		*--*>Show Mover
		jsr	Show_TekknoObject
		rts

**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	BUMPER
*-------------------------------------------------------------------------------------
*---------------------------------------------------------------------------
Init_TBumper	*--*>Init Underworld Bumper
		move.b	#-8,GBumper_Bump_Speed(a4)
		move.b	#10,GBumper_Bump_Time(a4)
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		;move	#1,Bob_Back_Anim(a4)
		move.l	#Bumper_Rout_Gl,Bob_Routine(a4)
		move.l	#Show_TekknoObject,GBumper_Show_Rout(a4)
		move.l	#TBumper_Work_Anm,GBumper_Work_Anim(a4)
		rts
*-------------------------------------------------------------------------------------
TBumper_Wait_Anm:	dc.w	0
		dc.l	TBumper_Obj1
		dc.w	0,+10
		dc.w	ENTRY_END
		dc.l	TBumper_Wait_Anm
TBumper_Work_Anm:	dc.w	0
		dc.l	TBumper_Obj0
		dc.w	0,+19
		dc.w	0
		dc.l	TBumper_Obj0
		dc.w	0,+19
		dc.w	0
		dc.l	TBumper_Obj0
		dc.w	0,+19
		dc.w	0
		dc.l	TBumper_Obj0
		dc.w	0,+19
		dc.w	ENTRY_END
		dc.l	TBumper_Wait_Anm
*---------------------------------------------------------------------------
**************************************************************************************
*-------------------------------------------------------------------------------------
*-------------	TEKKNO DOOR
*-------------------------------------------------------------------------------------
TEKKNO_Door_Anim_Tab	dc.l	TDoor_Anim_Norm,TDoor_Anim_Small,TDoor_Obj2
		dc.w	Tekkno_EnemyVRam/32

TTest_Init_Doors:	*--*>Init Water Dingens
		move.l	#TEKKNO_Door_Anim_Tab,Door_Anims(a4)
		move.l	#Test_Init_Doors,Bob_Routine(a4)
		move.l	#Show_TekknoObject,Door_Show_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
TDoor_Anim_Norm:	dc.w	0
		dc.l	TDoor_Obj0,0
		dc.w	ENTRY_END
		dc.l	TDoor_Anim_Norm
TDoor_Anim_Small:	dc.w	0
		dc.l	TDoor_Obj1,32
		dc.w	ENTRY_END
		dc.l	TDoor_Anim_Small
**************************************************************************************
*-------------------------------------------------------------------------------------
*------------	FLYER
*-------------------------------------------------------------------------------------
FlyerShot_X_Add	=Bob_Koords_Save1
FlyerShoot_Position	=Bob_Koords_Save2
Flyer_Sound_Timer	=Bob_Special_1
*---------------------------------------------------------------------------
Shoot_AnimL:	dc.w	0
		dc.l	TRocket_Obj0,0
		dc.w	0
		dc.l	TRocket_Obj1,0
		dc.w	0
		dc.l	TRocket_Obj2,0
		dc.w	0
		dc.l	TRocket_Obj1,0
		dc.w	ENTRY_END
		dc.l	Shoot_AnimL
Shoot_AnimR:	dc.w	1
		dc.l	TRocket_Obj0,0
		dc.w	1
		dc.l	TRocket_Obj1,0
		dc.w	1
		dc.l	TRocket_Obj2,0
		dc.w	1
		dc.l	TRocket_Obj1,0
		dc.w	ENTRY_END
		dc.l	Shoot_AnimR
*---------------------------------------------------------------------------
Shoot_Rout1		addq	#1,Flyer_Sound_Timer(a4)
		cmp	#35,Flyer_Sound_Timer(a4)
		bne.s	.NoSoundTime
		clr.w	Flyer_Sound_Timer(a4)
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC
.NoSoundTime	tst	FlyerShoot_Position(a4)
		bne.s	.NoXPosInit
		move	Bob_X_Position(a4),FlyerShoot_Position(a4)
.NoXPosInit
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	#16,d0
		add	#3,d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli
		;--X-Kollision
		move.b	#BOB_FALSE,Bob_Used(a4)
		jsr	ENTER_SMOKE_X
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
		rts

.NoXKolli	jsr	Test_TEMET_Hit
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_TekknoObject
.NoNewAnim		tst.b	FlyerShot_X_Add(a4)
		bpl.s	.PositiveSpeed
.NegativeSpeed	move.l	FlyerShot_X_Add(a4),d0
		add.l	d0,FlyerShoot_Position(a4)
		sub.l	#$1000,FlyerShot_X_Add(a4)
		move	FlyerShoot_Position(a4),Bob_X_Position(a4)
		rts
.PositiveSpeed	move.l	FlyerShot_X_Add(a4),d0
		add.l	d0,FlyerShoot_Position(a4)
		add.l	#$1000,FlyerShot_X_Add(a4)
		move	FlyerShoot_Position(a4),Bob_X_Position(a4)
		rts
*-------------------------------------------------------------------------------------
Flyer_Y_Speed	=Bob_Koords_Save1	;LW
Flyer_Y_Acce	=Bob_Special_3	;W
Flyer_Which_Rout	=Bob_Special_1	;B
Flyer_Y_Border	=Bob_Special_1+1	;B
Flyer_X_Range	=Bob_Special_2	;B
Flyer_X_Dir		=Bob_Special_2+1	;B
Dse_Anim		=Bob_Koords_Save2	;W
Flyer_Hit		=Bob_Hit		;B
Flyer_Kollide_Timer	=Bob_Hit+1		;B
Flyer_Has_Shot	=Bob_Special_4	;B
Flyer_Has_Met_TEMET	=Bob_Special_4	;B
FLYER_NORMAL_ROUT	=0
KOLLI_UP_ROUT	=1
KOLLI_DOWN_ROUT	=2
TRACE_ROUT	=3
SHOOT_ROUT	=4
*-------------------------------------------------------------------------------------
Init_Flyer_Rout1	*--*>Init Values for Flyer R
		move.w	#200,Bob_Out_X_Val(a4)
		move.w	#200+32,Bob_Out_Y_Val(a4)
		move	#$1000,Flyer_Y_Acce(a4)
		move.l	#Flyer_Rout1,Bob_Routine(a4)
		move.b	#2,Flyer_Y_Border(a4)
		move.b	#1,Flyer_X_Dir(a4)
		rts
Init_Flyer_RoutL	*--*>Init Values for Flyer
		move.w	#200,Bob_Out_X_Val(a4)
		move.w	#200+32,Bob_Out_Y_Val(a4)
		move	#$1000,Flyer_Y_Acce(a4)
		move.l	#Flyer_Rout1,Bob_Routine(a4)
		move.b	#2,Flyer_Y_Border(a4)
		move.b	#-1,Flyer_X_Dir(a4)
		rts
*-------------------------------------------------------------------------------------
Flyer_Rout1		*--*>StandartRouts
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		;move	#NORMAL,Bob_Race(a4)
.No_Out_Fire	*--*>Test which Routs
		jsr	Show_TekknoObject
		jsr	.Test_ShowFire
		cmp.b	#FLYER_NORMAL_ROUT,Flyer_Which_Rout(a4)
		beq.s	.FLYER_NORMAL_ROUTs
		cmp.b	#KOLLI_UP_ROUT,Flyer_Which_Rout(a4)
		beq.s	.Kolli_Up_Routs
		cmp.b	#KOLLI_DOWN_ROUT,Flyer_Which_Rout(a4)
		beq.s	.Kolli_Down_Routs
		cmp.b	#TRACE_ROUT,Flyer_Which_Rout(a4)
		beq	.TEMET_Trace_Routs
		cmp.b	#SHOOT_ROUT,Flyer_Which_Rout(a4)
		beq	.Shoot_Routs
*-------------------------------------------------------------------------------------
*-----------	FLYER CALL ROUTS DEPENDING ON MODE
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.FLYER_NORMAL_ROUTs	*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Make_Y_Speed
		jsr	.Test_X_Kollision
		tst.b	Flyer_Has_Shot(a4)
		bpl.s	.Dont_Test_Range
		jsr	.Test_TEMET_InRange
		addq.b	#1,Flyer_Has_Shot(a4)
.Dont_Test_Range	subq.b	#1,Flyer_Has_Shot(a4)
		*--*>Rout must be the last
		jsr	.Test_Up_Kollision
		jsr	.Test_DownKollision
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Kolli_Up_Routs	*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Test_X_Kollision
		*--*>Rout must be the last
		jsr	.Test_Up_Kollision
		jsr	.Test_DownKollision
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Kolli_Down_Routs	*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Test_X_Kollision
		jsr	.Make_Y_Bump
		*--*>Rout must be the last
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TEMET_Trace_Routs	*--*>Call Dir Routs
		jsr	.Make_Y_Speed_Trace
		*--*>Rout must be the last
		jsr	.Test_DownKollision
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Shoot_Routs	*--*>Call Dir Routs
		jsr	.Make_Y_Speed
		jsr	.Shoot_TEMET
		*--*>Rout must be the last
		jsr	.Test_Up_Kollision
		jsr	.Test_DownKollision
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
*-----------	CO-Object Routs
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_ShowFire	tst	Flyer_Y_Acce(a4)
		bpl.s	.Dont_Show_Dse
.Show_Dse		*--Turn on Dse
		eor	#1,Dse_Anim(a4)
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		tst.b	Flyer_X_Dir(a4)
		bpl.s	.Bob_Right
.Bob_Left		*--Make Koords Left
		add	#24,d0
		add	#21,d1
		moveq	#0,d2
		bra.s	.ShowIt
.Bob_Right		*--Make Koords Right
		subq	#08,d0
		add	#21,d1
		moveq	#1,d2
.ShowIt		*--*>Zeig Es
		jsr	Check_Object_Borders_Jan
		beq.s	.Dont_Show_Dse
		lea	TFlame_Obj0,a0
		tst	Dse_Anim(a4)
		beq.s	.OKANim
		lea	TFlame_Obj1,a0
.OKANim		move.w	#Tekkno_EnemyVRam/32,d3
		jsr	Add_Sigel
.Dont_Show_Dse	*--*>ENDE
		rts

*-------------------------------------------------------------------------------------
*-----------	FLYER KOLLISION ROUTS
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_Up_Kollision	*--*> Test if Flyer has Kollidet with Upper Block 
		tst.b	Flyer_Kollide_Timer(a4)
		beq.s	.HasNot_Kollidet
		bmi	.NoKollide
		subq.b	#1,Flyer_Kollide_Timer(a4)
		addq	#2,Bob_Y_Position(a4)
		tst.b	Flyer_Kollide_Timer(a4)
		bne.s	.NoNormValsSet
		move.b	#FLYER_NORMAL_ROUT,Flyer_Which_Rout(a4)
		tst	Flyer_Y_Acce(a4)
		bpl.s	.AcceokPos
		neg	Flyer_Y_Acce(a4)
.AcceokPos		clr.l	Flyer_Y_Speed(a4)
		move	#2,Flyer_Y_Speed(a4)
.NoNormValsSet	rts
.HasNot_Kollidet	*--*>Test if test is allowed
		tst	Flyer_Y_Speed(a4)
		bpl.s	.NoKollide
		*--*> Test if Flyer is in Boden
		move	Bob_X_Position(a4),d0
		add	#16,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		bne.s	.Kolli
.NoKollBit
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne.s	.NoKollide
.Kolli		*--Flyer Kollides
		move.b	#15,Flyer_Kollide_Timer(a4)
		move.b	#KOLLI_UP_ROUT,Flyer_Which_Rout(a4)
		IFEQ	SOUNDFX
		moveq	#10,d0
		jsr	TFMX+16
		ENDC
		jsr	ENTER_SMOKE_X
.NoKollide		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_DownKollision	*--*> Test if Flyer has Kollidet with Upper Block 
		*--Test if test is allowed
		tst	Flyer_Y_Speed(a4)
		bmi.s	.No_Down_Kollide
		*--*> Test if Flyer is in Boden
		move	Bob_X_Position(a4),d0
		add	#16,d0
		move	Bob_Y_Position(a4),d1
		add	#28,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne.s	.No_Down_Kollide
		*--Flyer Kollides
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
		clr.b	Flyer_Kollide_Timer(a4)
		move.b	#KOLLI_DOWN_ROUT,Flyer_Which_Rout(a4)
		*--Enter BIG Smoke
		jsr	ENTER_SMOKE_X
.No_Down_Kollide	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_X_Kollision	*--*>Test X Kollision of Flyer
		move	Bob_Y_Position(a4),d1
		add	#18,d1
		move	Bob_X_Position(a4),d0
		tst.b	Flyer_X_Dir(a4)
		bmi.s	.Test_Left_X_Koll
		add	#32,d0
.Test_Left_X_Koll	*--Left X Koll
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli
		neg.b	Flyer_X_Dir(a4)
		move.l	#Flyer_Anim_Right,Bob_Next_Anim(a4)
		tst.b	Flyer_X_Dir(a4)
		bpl.s	.OKAY
		move.l	#Flyer_Anim_Left,Bob_Next_Anim(a4)
.OKAY		clr.w	Bob_Anim_Delay(a4)
.NoXKolli		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
*---------------	FLYER MOVE ROUTS
*-------------------------------------------------------------------------------------
.Make_Y_Bump	*--*> Make Y Bump on Ground
		*--Calc base of Tab
		lea	.BumpTab,a0
		moveq	#0,d0
		move.b	Flyer_Kollide_Timer(a4),d0
		add	d0,a0
		cmp.b	#-10,(a0)
		beq.s	.EndTable
		move.b	(a0),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		addq.b	#1,Flyer_Kollide_Timer(a4)
		rts
.EndTable		*--End Y Bump
		clr.b	Flyer_Kollide_Timer(a4)
		move.b	#FLYER_NORMAL_ROUT,Flyer_Which_Rout(a4)
		clr.l	Flyer_Y_Speed(a4)
		tst	Flyer_Y_Acce(a4)
		bmi.s	.OkNegAcce
		neg	Flyer_Y_Acce(a4)
.OkNegAcce	rts
.BumpTab		dc.b	-2,-2,-2,-2,-1,-2,-1,-1,-1,-0,-0
		dc.b	-1,-0,-0,-0,-0,-0,-0
		dc.b	-0,-0,-0,-0,+1,+0,+0
		dc.b	+1,+0,+1,+1,+1,+1,+2,+1,+2,+2,+2
		dc.b	-2,-2,-1,-2,-1,-1,-0,-1,-0,-1
		dc.b	-1,-1,-1
		dc.b	-10
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_X_Speed	*--*>X Speed Make
		tst.b	Flyer_X_Dir(a4)
		bpl.s	.Move_Right
.Move_Left	*--Test if Flyer scholud move Right
		move.b	Flyer_X_Range(a4),d0
		neg.b	d0
		cmp.b	#120,d0
		bne.s	.Move_Flyer_X
		neg.b	Flyer_X_Dir(a4)
		move.l	#Flyer_Anim_Right,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		bra.s	.Move_Flyer_X
.Move_Right	*--Test if Flyer scholud move Left
		move.b	Flyer_X_Range(a4),d0
		cmp.b	#120,d0
		bne.s	.Move_Flyer_X
		neg.b	Flyer_X_Dir(a4)
		move.l	#Flyer_Anim_Left,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		;bra.s	.Move_Flyer_X
.Move_Flyer_X	*--Move Flyer in X Direction
		move.b	Flyer_X_Dir(a4),d0
		add.b	d0,Flyer_X_Range(a4)
		ext.w	d0
		add	d0,Bob_X_Position(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_Y_Speed	*--*>Y Speed Make
		tst	Flyer_Y_Acce(a4)
		bpl.s	.Acce_Down
.Acce_Up		*--Test if Acce should be down
		move	Flyer_Y_Speed(a4),d0
		neg	d0
		cmp.b	Flyer_Y_Border(a4),d0
		bne.s	.Add_Acce_Speed
		neg	Flyer_Y_Acce(a4)	
		bra.s	.Add_Acce_Speed
.Acce_Down		*--Test if Acce should be up
		move	Flyer_Y_Speed(a4),d0
		cmp.b	Flyer_Y_Border(a4),d0
		bne.s	.Add_Acce_Speed
		neg	Flyer_Y_Acce(a4)
		;bra.s	.Add_Acce_Speed
.Add_Acce_Speed	*--Add Acce to Speed
		move	Flyer_Y_Acce(a4),d0
		ext.l	d0
		add.l	d0,Flyer_Y_Speed(a4)
		*--Add Speed to Pos
		move	Flyer_Y_Speed(a4),d0
		add	d0,Bob_Y_Position(a4)
		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
*-----------	FLYER SHOOT ROUTS
*-------------------------------------------------------------------------------------
.Shoot_TEMET	*--*>Test if the TIME is Right for Shooting
		cmp.b	#150,Flyer_Has_Shot(a4)
		beq.s	.GotoShoot
		cmp.b	#100,Flyer_Has_Shot(a4)
		beq.s	.GotoShoot
		cmp.b	#50,Flyer_Has_Shot(a4)
		beq.s	.GotoShoot
		cmp.b	#0,Flyer_Has_Shot(a4)
		beq.s	.EndShoot
		subq.b	#1,Flyer_Has_Shot(a4)
		rts
.EndShoot		*--Enter Vals for Normal flying
		move.b	#100,Flyer_Has_Shot(a4)
		move.b	#FLYER_NORMAL_ROUT,Flyer_Which_Rout(a4)
		clr.l	Flyer_Y_Speed(a4)
		tst	Flyer_Y_Acce(a4)
		bmi.s	.OkNegAcce1
		neg	Flyer_Y_Acce(a4)
.OkNegAcce1	rts
.GotoShoot		*-- Goto Shoot
		subq.b	#1,Flyer_Has_Shot(a4)
		IFEQ	SOUNDFX
		moveq	#13,d0
		jsr	TFMX+16
		ENDC
		tst.b	Flyer_X_Dir(a4)
		bpl.s	.ShootRight
.ShootLeft		*--Enter Left Shot
		move.l	#Flyer_Shot_Left,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)

		moveq	#ST_ROCKET,d0
		move	Bob_X_Position(a4),d1
		move	Bob_Y_Position(a4),d2
		sub	#32,d1
		add	#9,d2
		lea	Area_Enter_Vector(a6),a1
		move.l	a4,-(sp)
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.NoFound1
		move.l	#$ffffffff,FlyerShot_X_Add(a4)
		move.l	#Shoot_AnimL,Bob_Next_Anim(a4)
.NoFound1		move.l	(sp)+,a4
		rts
.ShootRight		*--Enter Right Shot
		move.l	#Flyer_Shot_Right,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		moveq	#ST_ROCKET,d0
		move	Bob_X_Position(a4),d1
		move	Bob_Y_Position(a4),d2
		add	#9,d2
		lea	Area_Enter_Vector(a6),a1
		move.l	a4,-(sp)
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.NoFound2
		move.l	#$00000000,FlyerShot_X_Add(a4)
		move.l	#Shoot_AnimR,Bob_Next_Anim(a4)
.NoFound2		move.l	(sp)+,a4
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_Y_Speed_Trace	*--*>Make Y Speed To Trace TEMET
		tst.b	Flyer_Has_Met_TEMET(a4)
		bne.s	.Met_TEMET
.Beschl_Down	*--Test if Beschl Down TEMET
		lea	WorkRam,a2
		move	TEMET_Y_Position(a2),d0
		sub	Bob_Y_Position(a4),d0
		bmi.s	.Has_Met_TEMET
		cmp	#6,d0
		bls.s	.Has_Met_TEMET
		bra.s	.Now_Beschl_Down
.Has_Met_TEMET	*--TEMET is MEt
		tst	Flyer_Y_Speed(a4)
		bmi.s	.Now_Beschl_Down
		move.b	#1,Flyer_Has_Met_TEMET(a4)
		bra.s	.Met_TEMET
.Now_Beschl_Down	*--Beschl_Down
		add.l	#$00003000,Flyer_Y_Speed(a4)
		move	Flyer_Y_Speed(a4),d0
		add	d0,Bob_Y_Position(a4)
		rts		
.Met_TEMET		*--Met TEMET Test if Speed is ZERO
		tst	Flyer_Y_Speed(a4)
		beq.s	.EnterShoot
.Beschl_Up		*--Beschl_Up
		sub.l	#$00005000,Flyer_Y_Speed(a4)
		move	Flyer_Y_Speed(a4),d0
		add	d0,Bob_Y_Position(a4)
		rts		
.EnterShoot		*--Enter Shot TEMET is allowed
		move.b	#SHOOT_ROUT,Flyer_Which_Rout(a4)
		move.b	#150,Flyer_Has_Shot(a4)
		move	#$ffff-$2000,Flyer_Y_Acce(a4)
.End_Trace		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_TEMET_InRange	*--*> Test if TEMET is in Range
		*--Get Values
		lea	WorkRam,a2
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		add	#16,d0
		*--Sub Bob Values
		sub	Bob_X_Position(a4),d0
		sub	#16,d0
		sub	Bob_Y_Position(a4),d1
		*--Test if Bob-YDir is down
		bmi.s	.No_Temet_Trace
		cmp	#60,d1
		bhs.s	.No_Temet_Trace
		*--Test if Direction is Ok
		tst	d0
		bpl.s	.Flyer_Left
.Flyer_Right	*--Flyer is Right
		tst.b	Flyer_X_Dir(a4)
		bpl.s	.No_Temet_Trace
		neg	d0
		cmp	#40,d0
		bls.s	.No_Temet_Trace
		cmp	#90,d0
		bhs.s	.No_Temet_Trace
		bra.s	.TEMET_Trace
.Flyer_Left		*--Flyer is Left
		tst.b	Flyer_X_Dir(a4)
		bmi.s	.No_Temet_Trace
		cmp	#40,d0
		bls.s	.No_Temet_Trace
		cmp	#90,d0
		bhs.s	.No_Temet_Trace
.TEMET_Trace	*--INIT Beschl down
		move.b	#TRACE_ROUT,Flyer_Which_Rout(a4)
		clr.b	Flyer_Has_Shot(a4)
		clr.b	Flyer_Has_Met_TEMET(a4)
.No_Temet_Trace	rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
*-----------	FLYER DEAD/DAMAGE ROUTS
*-------------------------------------------------------------------------------------
.Test_TEMET_Hit_Bob	*--*>Test if Bob should blink White
.NoColourOn		*--*>Test Kollision with TEMET
		lea	WorkRam,a2
		jsr	KollTopBobTest
		tst	d7
		bmi.s	.NoKoll
		*--Kollision ! Test if Flyer should explode
		tst.b	Flyer_Hit(a4)
		bne.s	.Flyer_Explode
		cmp	#FLIEGEN,TEMET_Status(a2)
		beq.s	.Flyer_Explode
.Make_Bob_Hit	*--Make Bob Hit
		move.b	#10,Flyer_Hit(a4)
		move.b	#FLYER_NORMAL_ROUT,Flyer_Which_Rout(a4)
		jsr	Make_Bump
		lea	WorkRam,a2
		clr.l	Flyer_Y_Speed(a4)
		move	#4,Flyer_Y_Speed(a4)
		move	#$ffff-$2000,Flyer_Y_Acce(a4)
		move.b	#3,Flyer_Y_Border(a4)
		jsr	ENTER_SMOKE_X
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		rts
.Flyer_Explode	*--Flyer Explode
		jsr	Make_Bump
		jsr	Out_Bob_Damage
		jsr	ENTER_SMOKE_X
		jsr	ENTER_SMOKE_Y
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		rts
.NoKoll		*--keine Kollision
		rts
*------------------------------------------------------------------------------
Flyer_Anim_Left:	dc.w	0
		dc.l	TDrohne_Obj0,0
		dc.w	ENTRY_END
		dc.l	Flyer_Anim_Left
Flyer_Anim_Right:	dc.w	1
		dc.l	TDrohne_Obj0,0
		dc.w	ENTRY_END
		dc.l	Flyer_Anim_Right
Flyer_Shot_Left:	dc.w	0
		dc.l	TDrohne_Obj1,0
		dc.w	0
		dc.l	TDrohne_Obj2,0
		dc.w	0
		dc.l	TDrohne_Obj0,0
		dc.w	0
		dc.l	TDrohne_Obj0,0
.Cont		dc.w	0
		dc.l	TDrohne_Obj0,0
		dc.w	ENTRY_END
		dc.l	.Cont
Flyer_Shot_Right:	dc.w	1
		dc.l	TDrohne_Obj1,0
		dc.w	1
		dc.l	TDrohne_Obj2,0
		dc.w	1
		dc.l	TDrohne_Obj0,0
		dc.w	1
		dc.l	TDrohne_Obj0,0
.Cont		dc.w	1
		dc.l	TDrohne_Obj0,0
		dc.w	ENTRY_END
		dc.l	.Cont

**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	HUHN
*-------------------------------------------------------------------------------------
;Huhn_Fly_Left_Adr	rs.l	1
;Huhn_Fly_Right_Adr	rs.l	1
;Huhn_Walk_Left_Adr	rs.l	1
;Huhn_Walk_Right_Adr	rs.l	1
;Huhn_Conv_Left_Adr	rs.l	1
;Huhn_Conv_Right_Adr	rs.l	1
;Huhn_Sigel_Foot1	rs.l	1
;Huhn_Sigel_Foot2	rs.l	1
;Huhn_VRam		rs.w	1
;FHuhn_Display	rs.l	1
;THuhn_Anm_Panic_Left	rs.l	1
;THuhn_Anm_Panic_Right	rs.l	1
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
THuhn_Anim_Adrs	dc.l	THuhn_Left_AnmF,THuhn_Right_AnmF
		dc.l	THuhn_Left_Anm,THuhn_Right_Anm
		dc.l	UHuhn_Skelett_Left,UHuhn_Skelett_Right
		dc.l	TChick_Obj3,TChick_Obj2
		dc.w	Tekkno_EnemyVRam/32
		dc.l	Display_Tekkno_Schraube
		dc.l	THuhn_Anim_L_P
		dc.l	THuhn_Anim_R_P
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
THuhn_Right_Anm:	dc.w	1
		dc.l	TChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	THuhn_Right_Anm
THuhn_Right_AnmF:	dc.w	1
		dc.l	TChick_Obj0,$0
		dc.w	1
		dc.l	TChick_Obj0,$1
		dc.w	1
		dc.l	TChick_Obj0,$2
		dc.w	1
		dc.l	TChick_Obj0,$2
		dc.w	1
		dc.l	TChick_Obj0,$1
		dc.w	1
		dc.l	TChick_Obj0,$0
		dc.w	ENTRY_END
		dc.l	THuhn_Right_AnmF
THuhn_Left_Anm:	dc.w	0
		dc.l	TChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	THuhn_Left_Anm
THuhn_Left_AnmF:	dc.w	0
		dc.l	TChick_Obj0,$0
		dc.w	0
		dc.l	TChick_Obj0,$1
		dc.w	0
		dc.l	TChick_Obj0,$2
		dc.w	0
		dc.l	TChick_Obj0,$2
		dc.w	0
		dc.l	TChick_Obj0,$1
		dc.w	0
		dc.l	TChick_Obj0,$0
		dc.w	ENTRY_END
		dc.l	THuhn_Left_AnmF

THuhn_Anim_L_P	dc.w	0
		dc.l	TChick_Obj0,0
		dc.w	0
		dc.l	TChick_Obj1,0
		dc.w	ENTRY_END
		dc.l	THuhn_Anim_L_P
THuhn_Anim_R_P	dc.w	1
		dc.l	TChick_Obj0,0
		dc.w	1
		dc.l	TChick_Obj1,0
		dc.w	ENTRY_END
		dc.l	THuhn_Anim_R_P
*-------------------------------------------------------------------------------------
THuhn_Init:		*--*>Init Anim Informations
		move.l	#THuhn_Anim_Adrs,Huhn_Anim_Adrs(a4)
		move.l	#Show_TekknoObject,WHuhn_Show_Rout(a4)
		move.l	#THuhn_Jump_I,Huhn_Conv_RoutI(a4)
		jmp	Huhn_Init
**************************************************************************************
THuhn_JumpTab_Offs	=Bob_Special_3	;W
THuhn_Jump_Delay	=Bob_Special_2	;W
*-------------------------------------------------------------------------------------
JUMPDELIN	=50
THuhn_Jump_I	*--*>IR
		subq	#4,TEMET_Y_Position(a2)
		move.l	#THuhn_Jump,Bob_Routine(a4)
		move	#8,Bob_Anim_Delay_Init(a4)
		move	#JUMPDELIN,THuhn_Jump_Delay(a4)
		clr.w	THuhn_JumpTab_Offs(a4)

		move.b	#0,Huhn_Foot1_OffsY(a4)
		move.b	#0,Huhn_Foot2_OffsY(a4)
		move.l	Huhn_Anim_Adrs(a4),a0
		tst.b	WHuhn_X_Dir(a4)
		bpl.s	.InitRight

.InitLeft		move.l	THuhn_Anm_Panic_Left(a0),Bob_Next_Anim(a4)
		jsr	Get_Next_Bob_Frame
		move.b	#4,Huhn_Foot1_OffsX(a4)
		move.b	#12,Huhn_Foot2_OffsX(a4)
		bra.s	.THuhn_Jump

.InitRight		move.l	THuhn_Anm_Panic_Right(a0),Bob_Next_Anim(a4)
		jsr	Get_Next_Bob_Frame
		move.b	#12,Huhn_Foot1_OffsX(a4)
		move.b	#4,Huhn_Foot2_OffsX(a4)
.THuhn_Jump
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
THuhn_Jump		*--*>Rout for Jumping
		jsr	Test_TEMET_Hit
		jsr	Standart_BobAnim
		jsr	Test_TIMET_Hit_HuhnDA
		;--Huhn warten bevor gejumpt wird
		tst	THuhn_Jump_Delay(a4)
		bmi.s	.NoDelay
		move	#4,Bob_Anim_Delay_Init(a4)
		subq	#2,THuhn_Jump_Delay(a4)
		jsr	Display_Huhn
		rts
.NoDelay		;--Jump Rout
		move	#6,Bob_Anim_Delay_Init(a4)
		lea	THJumpTab,a0
		add	THuhn_JumpTab_Offs(a4),a0
		addq	#1,THuhn_JumpTab_Offs(a4)
		tst.b	4(a0)
		beq	.NoEndTab
		bmi	.NoEndTab
		*--*>Enter Fly Huhn
		moveq	#-16,d3
		moveq	#-10,d4
		jsr	ENTER_SMOKE_X_Offs
		move	Bob_Y_Offset(a4),d0
		add	d0,Bob_Y_Position(a4)
		clr.w	Bob_Y_Offset(a4)
		jsr	Display_Huhn
		move.l	Huhn_Anim_Adrs(a4),a0
		tst.b	WHuhn_X_Dir(a4)
		bpl.s	.Init_Right_FHuhn
.Init_Left_FHuhn	*--*>Left Huhn
		move.l	Huhn_Fly_Left_Adr(a0),Bob_Next_Anim(a4)
		move.l	#Fly_Huhn_Rout,Bob_Routine(a4)
		bra.s	.GoBack
.Init_Right_FHuhn	*--*>Right Huhn
		move.l	Huhn_Fly_Right_Adr(a0),Bob_Next_Anim(a4)
		move.l	#Fly_Huhn_Rout,Bob_Routine(a4)
.GoBack		rts

.NoEndTab		move.b	4(a0),d0
		ext.w	d0
		move	d0,Bob_Y_Offset(a4)
		move.b	(a0),d1
		move.b	2(a0),d0
		ext.w	d0
		ext.w	d1
		moveq	#0,d2
		move	d2,d3
		add	d0,d2
		add	d1,d3
		neg	d2
		neg	d3
		move.b	d2,Huhn_Foot1_OffsY(a4)
 		move.b	d3,Huhn_Foot2_OffsY(a4)
		jsr	Display_Huhn
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ENDJUMPTAB	=	1
THJumpTab		dc.b	0,0,0,0,0,0
		dc.b	-4,-8,-11,-15,-18,-21,-23,-25,-27,-29,-30,-31,-31,-32,-32,-32
		dc.b	-32,-32,-31,-31,-30,-29,-27,-25,-23,-21,-18,-15,-11,-8,-4
		dc.b	0,0,0,0,0,0
		dc.b	-4,-8,-11,-15,-18,-21,-23,-25,-27,-29,-30,-31,-31,-32,-32,-32
		dc.b	-32,-32,-31,-31,-30,-29,-27,-25,-23,-21,-18,-15,-11,-8,-4
		dc.b	0,0,0,0,0,0
		dc.b	-4,-8,-11,-15,-18,-21,-23,-25,-27,-29,-30,-31,-31,-32,-32,-32
		dc.b	-32,-32,-31,-31,-30,-29
		dc.b	ENDJUMPTAB
		even
*-------------------------------------------------------------------------------------
Test_TIMET_Hit_HuhnDA	*--*>Test Kollision
		lea	WorkRam,a2
		jsr	KollTopBobTest
		tst	d7
		bmi 	.NoKollFl
		;--Kollision On
		jsr	Make_Bump
		*--*>out Huhn
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		jsr	ENTER_SMOKE_X
		jsr	ENTER_SMOKE_Y
		cmp	#JUMPDELIN-2,THuhn_Jump_Delay(a4)
		bgt.s	.NoKollFl
		jsr	Out_Bob_Damage
.NoKollFl		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
Display_Tekkno_Schraube	*--*>Display Dat Dinges
		addq.b	#1,Huhn_Foot1_OffsX(a4)
		and.b	#3,Huhn_Foot1_OffsX(a4)

		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#28,d1
		sub	#9,d0
		tst.b	WHuhn_X_Dir(a4)
		bpl.s	.OKL
		add	#34,d0
.OKL
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayF1
		moveq	#0,d2
		tst.b	WHuhn_X_Dir(a4)
		bmi.s	.OKLeft
		moveq	#1,d2

.OKLeft		moveq	#0,d4
		move.b	Huhn_Foot1_OffsX(a4),d4
		lea	.Anims,a3
		add	d4,d4
		add	d4,d4
		move.l	Huhn_Anim_Adrs(a4),a0
		move.w	Huhn_VRam(a0),d3
		move.l	(a3,d4),a0
		jsr	Add_Sigel
.NoDisplayF1	rts

.Anims		dc.l	TChick_Obj4,TChick_Obj5,TChick_Obj6,TChick_Obj5
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------------	FLAMES UP
*-------------------------------------------------------------------------------------
*---------------------------------------------------------------------------
*	Routines InfoTables and AnimTables of	FLAMES
*---------------------------------------------------------------------------
FLAMES_Init_Number	=Bob_Special_1	;B
FLAMES_Init_Wait	=Bob_Special_1+1	;B
FLAMES_I_Init_Number=Bob_Special_2	;B
FLAMES_I_Init_Wait	=Bob_Special_2+1	;B
FLAMES_Wait_Time	=Bob_Special_3	;B	
FLAMES_I_Wait_Time	=Bob_Special_3+1	;B	
*---------------------------------------------------------------------------
I_I_FLAMES_Up_01:	*--*>Init Flames Up (01)
		addq	#8,Bob_Y_Position(a4)
		move.b	#10,FLAMES_Init_Number(a4)
		move.b	#6,FLAMES_Init_Wait(a4)
		move.b	#10,FLAMES_I_Init_Number(a4)
		move.b	#5,FLAMES_I_Init_Wait(a4)
		move.b	#20,FLAMES_Wait_Time(a4)
		move.b	#60,FLAMES_I_Wait_Time(a4)
		move.l	#Handle_FLAMES_Up,Bob_Routine(a4)
		rts
*---------------------------------------------------------------------------
I_I_FLAMES_Up_02:	*--*>Init Flames Up (02)
		addq	#8,Bob_Y_Position(a4)
		move.b	#20,FLAMES_Init_Number(a4)
		move.b	#6,FLAMES_Init_Wait(a4)
		move.b	#20,FLAMES_I_Init_Number(a4)
		move.b	#5,FLAMES_I_Init_Wait(a4)
		move.b	#20,FLAMES_Wait_Time(a4)
		move.b	#120,FLAMES_I_Wait_Time(a4)
		move.l	#Handle_FLAMES_Up,Bob_Routine(a4)
		rts
*---------------------------------------------------------------------------
I_I_FLAMES_Up_03:	*--*>Init Flames Up (03)
		addq	#8,Bob_Y_Position(a4)
		move.b	#15,FLAMES_Init_Number(a4)
		move.b	#6,FLAMES_Init_Wait(a4)
		move.b	#15,FLAMES_I_Init_Number(a4)
		move.b	#5,FLAMES_I_Init_Wait(a4)
		move.b	#20,FLAMES_Wait_Time(a4)
		move.b	#70,FLAMES_I_Wait_Time(a4)
		move.l	#Handle_FLAMES_Up,Bob_Routine(a4)
		rts
*---------------------------------------------------------------------------
I_I_FLAMES_Up_04:	*--*>Init Flames Up (04)
		addq	#8,Bob_Y_Position(a4)
		move.b	#10,FLAMES_Init_Number(a4)
		move.b	#6,FLAMES_Init_Wait(a4)
		move.b	#10,FLAMES_I_Init_Number(a4)
		move.b	#5,FLAMES_I_Init_Wait(a4)
		move.b	#20,FLAMES_Wait_Time(a4)
		move.b	#80,FLAMES_I_Wait_Time(a4)
		move.l	#Handle_FLAMES_Up,Bob_Routine(a4)
		rts
*---------------------------------------------------------------------------
Handle_FLAMES_Up	*--*>Handle Flames
		*--Standart Routs
		jsr	Standart_BobAnim
		jsr	Test_Bob_Out

		move.w	#Flames_VRam/32,d3
		move.l	Bob_SigelInfo(a4),a0
		moveq	#0,d2
		jsr	Show_Simple_Object

		*--Test Wait-Time
		tst.b	FLAMES_Wait_Time(a4)
		bmi.s	.Test_Init_Flame
		*--Make Wait-Time
		subq.b	#1,FLAMES_Wait_Time(a4)
		bmi.s	.PlaySSSCCCHHH
		rts
.PlaySSSCCCHHH
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC
		rts
.Test_Init_Flame	*--Test Init Flame
		subq.b	#1,FLAMES_Init_Wait(a4)
		bpl.s	.END
		*--Init Flame
		lea	Area_Enter_Vector(a6),a1
		move	#ST_FLAME_Up,d0
		move	Bob_X_Position(a4),d1
		sub	#16,d1
		move	Bob_Y_Position(a4),d2
		subq	#8,d2
		move.l	a4,-(sp)
		jsr	Search_Bob_Entry
		move.l	(sp)+,a4
		*--*>Make Values
		move.b	FLAMES_I_Init_Wait(a4),FLAMES_Init_Wait(a4)
		subq.b	#1,FLAMES_Init_Number(a4)
		bpl.s	.END
		move.b	FLAMES_I_Init_Number(a4),FLAMES_Init_Number(a4)
		move.b	FLAMES_I_Wait_Time(a4),FLAMES_Wait_Time(a4)
.END		*--*>ENDE
		rts
*-------------------------------------------------------------------------------------
Handle_FLAME_Up	*--*>Handle Flame Up
		*--Standart Routs
		jsr	Standart_BobAnim
		jsr	Test_Bob_Out
		jsr	Test_TEMET_Hit
		subq	#8,Bob_Y_Position(a4)
		jsr	Show_TekknoObject
		move	Bob_X_Position(a4),d0
		add	#16,d0
		move	Bob_Y_Position(a4),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplay
		moveq	#1,d2
		move.l	Bob_SigelInfo(a4),a0
		move.w	#Tekkno_EnemyVRam/32,d3
		jsr	Add_Sigel
		*--Make Y Speed
.NoDisplay		rts
*---------------------------------------------------------------------------
Flame_Up_Anim:	dc.w	0
		dc.l	TFire_Obj0,0
		dc.w	0
		dc.l	TFire_Obj1,0
		dc.w	0
		dc.l	TFire_Obj0,0
		dc.w	0
		dc.l	TFire_Obj1,0
		dc.w	0
		dc.l	TFire_Obj2,0
		dc.w	0
		dc.l	TFire_Obj1,0
		dc.w	0
		dc.l	TFire_Obj2,0
		dc.w	0
		dc.l	TFire_Obj3,0
		dc.w	0
		dc.l	TFire_Obj4,0
		dc.w	0
		dc.l	TFire_Obj5,0
		dc.w	0
		dc.l	TFire_Obj6,0
		dc.w	0
		dc.l	TFire_Obj7,0
		dc.w	END_OUT_DAMAGE
		dc.l	-1

		;dc.l	Flames_GFX+(000*03*4),0
;		dc.w	+00,+00,38
		;dc.l	Flames_GFX+(000*03*4),0
;		dc.w	+00,+00,38
		;dc.l	Flames_GFX+(000*03*4),0
;		dc.w	+00,+00,38
		;dc.l	Flames_GFX+(038*03*4),0
;		dc.w	+00,+00,37
		;dc.l	Flames_GFX+(038*03*4),0
;		dc.w	+00,+00,37
		;dc.l	Flames_GFX+(038*03*4),0
;		dc.w	+00,+00,37
		;dc.l	Flames_GFX+(075*03*4),0
;		dc.w	+00,+00,36
		;dc.l	Flames_GFX+(075*03*4),0
;		dc.w	+00,+00,36
		;dc.l	Flames_GFX+(111*03*4),0
;		dc.w	+00,+00,38
		;dc.l	Flames_GFX+(111*03*4),0
;		dc.w	+00,+00,38
		;dc.l	Flames_GFX+(149*03*4),0
;		dc.w	+00,+00,37
		;dc.l	Flames_GFX+(149*03*4),0
;		dc.w	+00,+00,37
		;dc.l	Flames_GFX+(186*03*4),0
;		dc.w	+00,+00,37
;		dc.w	END_OUT_DAMAGE
;		dc.l	-1

Smoke_Up_Anim:	dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	-2,-02
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	+2,-01
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	-4,-04
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	+4,-02

		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-5,-06
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+5,-03

		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	-6,-08
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	+6,-04
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	-6,-10
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	+6,-05

		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-6,-12
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+6,-06
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-5,-14
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+5,-07

		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	-4,-16
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	+4,-08
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	-4,-18
		dc.w	0
		dc.l	Extra2_Obj_2
		dc.w	+4,-09

		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+00,-20
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-00,-10

		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	+2,-22
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-2,-11

		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+4,-24
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-4,-12
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+5,-26
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-5,-13

		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	+5,-28
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-5,-14
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	+5,-30
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-5,-15

		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+4,-32
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-4,-16

		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	+3,-34
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-3,-17
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	+2,-36
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-2,-17

		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	+1,-38
		dc.w	0
		dc.l	Extra2_Obj_3
		dc.w	-1,-19

		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-0,-40
		dc.w	0
		dc.l	Extra2_Obj_4
		dc.w	-0,-20

		dc.w	ENTRY_END
		dc.l	Smoke_Up_Anim
**************************************************************************************
*-------------------------------------------------------------------------------------
*----------------	TEKKNO BUTTONS
*-------------------------------------------------------------------------------------
**************************************************************************************
I_Button_V_OFF:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_TekknoObject,Button_Display(a4)
		move.l	#I_Gl_Venti_Off,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#TeButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#RoutRts,Button_Out_Rout(a4)
		rts
I_Button_V_ON:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_TekknoObject,Button_Display(a4)
		move.l	#I_Gl_Venti_On,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#TeButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#RoutRts,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
I_Button_W_U_B:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_TekknoObject,Button_Display(a4)
		move.l	#I_Gl_Water_Up,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#TeButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#RoutRts,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
I_Button_W_D_B:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_TekknoObject,Button_Display(a4)
		move.l	#I_Gl_Water_Down,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#TeButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#RoutRts,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
I_Button_Door_Up:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_TekknoObject,Button_Display(a4)
		move.l	#I_Gl_Door_Up,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#TeButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#But_Clear_Door_Up,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
TeButton_Wait_AnimTab:	dc.w	0
		dc.l	TButton_Obj0,0
		dc.w	ENTRY_END
		dc.l	TeButton_Wait_AnimTab
TeButton_PressAnimTab:	dc.w	0
		dc.l	TButton_Obj1,8
		dc.w	0
		dc.l	TButton_Obj1,8
		dc.w	0
		dc.l	TButton_Obj1,8
		dc.w	0
		dc.l	TButton_Obj1,8
		dc.w	0
		dc.l	TButton_Obj0,0
		dc.w	ENTRY_END
		dc.l	TeButton_Wait_AnimTab
**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	VENTIES
*-------------------------------------------------------------------------------------
**************************************************************************************
Venties_Work_Anim	=Bob_Koords_Save1	;LW
Venties_Wait_Anim	=Bob_Koords_Save2	;LW
Venties_Bob_Rout	=Bob_Plane_Order	;LW
Venties_Fontne_On	=Bob_Hit		;B
*-------------------------------------------------------------------------------------
Check_Venti_On:	*--*>Testen if Venti is on
		jsr	Test_Bob_Out
		jsr	Show_TekknoObject
		tst	Venti_Off_But(a6)
		bne.s	.Dont_Turn_On
		*--Turn_On
		move.l	Venties_Work_Anim(a4),Bob_Next_Anim(a4)
		move.l	Venties_Bob_Rout(a4),Bob_Routine(a4)
.Dont_Turn_On	rts
*-------------------------------------------------------------------------------------
Turn_Venti_Off:	*--*>preset_Venti OFf
		move.l	#Check_Venti_On,Bob_Routine(a4)
		move.l	Venties_Wait_Anim(a4),Bob_Next_Anim(a4)
		rts
*-------------------------------------------------------------------------------------
Init_Venti_Up:	*--*>Init UP
		move.l	#Venti_Up_Work,Venties_Bob_Rout(a4)
		move.l	#Venti_Up_On_Anim,Venties_Work_Anim(a4)
		move.l	#Venti_Up_Off_Anim,Venties_Wait_Anim(a4)
		bsr	Turn_Venti_Off

		move	Bob_Y_Position(a4),d0
		cmp	Water_YPos(a6),d0
		bls.s	.Venti_Up
.Venti_Water	move.l	#Venti_Water_Rout,Venties_Bob_Rout(a4)
		rts
.Venti_Up	rts

Init_Venti_Down:	*--*>Init DOWN
		move.l	#Venti_Down_Work,Venties_Bob_Rout(a4)
		move.l	#Venti_Down_On_Anim,Venties_Work_Anim(a4)
		move.l	#Venti_Down_Off_Anim,Venties_Wait_Anim(a4)
		jsr	Turn_Venti_Off
		rts
Init_Venti_Left:	*--*>Init LEFT
		move.l	#Venti_Left_Work,Venties_Bob_Rout(a4)
		move.l	#Venti_Left_On_Anim,Venties_Work_Anim(a4)
		move.l	#Venti_Left_Off_Anim,Venties_Wait_Anim(a4)
		jsr	Turn_Venti_Off
		rts
Init_Venti_Right:	*--*>Init RIGHT
		move.l	#Venti_Right_Work,Venties_Bob_Rout(a4)
		move.l	#Venti_Right_On_Anim,Venties_Work_Anim(a4)
		move.l	#Venti_Right_Off_Anim,Venties_Wait_Anim(a4)
		jsr	Turn_Venti_Off
		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
Venti_Up_Off_Anim:	dc.w	0
		dc.l	TVentiH_Obj0,0
		dc.w	ENTRY_END
		dc.l	Venti_Up_Off_Anim
Venti_Up_On_Anim:	dc.w	0
		dc.l	TVentiH_Obj0,0
		dc.w	0
		dc.l	TVentiH_Obj1,0
		dc.w	0
		dc.l	TVentiH_Obj2,0
		dc.w	0
		dc.l	TVentiH_Obj3,0
		dc.w	ENTRY_END
		dc.l	Venti_Up_On_Anim
Venti_Down_Off_Anim:	dc.w	0
		dc.l	TVentiH2_Obj0,0
		dc.w	ENTRY_END
		dc.l	Venti_Down_Off_Anim
Venti_Down_On_Anim:	dc.w	0
		dc.l	TVentiH2_Obj0,0
		dc.w	0
		dc.l	TVentiH2_Obj1,0
		dc.w	0
		dc.l	TVentiH2_Obj2,0
		dc.w	0
		dc.l	TVentiH2_Obj3,0
		dc.w	ENTRY_END
		dc.l	Venti_Down_On_Anim
Venti_Left_Off_Anim:	dc.w	1
		dc.l	TVentiV_Obj0,0
		dc.w	ENTRY_END
		dc.l	Venti_Left_Off_Anim
Venti_Left_On_Anim:	dc.w	1
		dc.l	TVentiV_Obj0,0
		dc.w	1
		dc.l	TVentiV_Obj1,0
		dc.w	1
		dc.l	TVentiV_Obj2,0
		dc.w	1
		dc.l	TVentiV_Obj3,0
		dc.w	ENTRY_END
		dc.l	Venti_Left_On_Anim
Venti_Right_Off_Anim:	dc.w	0
		dc.l	TVentiV_Obj0,0
		dc.w	ENTRY_END
		dc.l	Venti_Right_Off_Anim
Venti_Right_On_Anim:	dc.w	0
		dc.l	TVentiV_Obj0,0
		dc.w	0
		dc.l	TVentiV_Obj1,0
		dc.w	0
		dc.l	TVentiV_Obj2,0
		dc.w	0
		dc.l	TVentiV_Obj3,0
		dc.w	ENTRY_END
		dc.l	Venti_Right_On_Anim
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
Venti_Water_Rout:
		*--Standart Routs
		jsr	Standart_BobAnim
		jsr	Test_Bob_Out
		jsr	Show_TekknoObject
		tst	Venti_Off_But(a6)
		bne	Turn_Venti_Off
		*--*>Test Init Fontne
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		add	#16,d0
		sub	Bob_X_Position(a4),d0
		sub	#24,d0
		tst	d0
		bpl.s	.ok_Pos_X_Dif
		neg	d0
.ok_Pos_X_Dif	cmp	#48,d0
		bhs.s	.NoInitFontne
		jsr	Init_Fontne
.NoInitFontne	*--*>Test if TEMET is in Venti
		lea	(a6),a2
		*--Test if Temet is under Water
		tst	TEMET_Underwater(a2)
		beq	.End_Venti
		move	Bob_X_Position(a4),d0
		add	#24,d0
		sub	TEMET_X_Position(a2),d0
		sub	#16,d0
		move	Bob_Y_Position(a4),d1
		sub	TEMET_Y_Position(a2),d1
		sub	#16,d1
		bmi	.End_Venti
		cmp	#100,d1
		bhi	.End_Venti
		tst	d0
		bpl.s	.TEMET_LEFT
.TEMET_RIGHT	*--TEMET ist rechts
		neg	d0
.TEMET_LEFT	move	#32,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA
		*--Init VentilatorSteering
		tst	TEMET_KollisionFlag(a2)
		beq.s	.okNotUpR
		*--Test Go Up
		cmp	#20,d0
		bhi	.End_Venti
		*--Go Up
		clr.w	TEMET_KollisionFlag(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		subq	#4,TEMET_Y_Position(a2)
.okNotUpR	*--Make Y Speed
		move	#160,d2
		sub	d1,d2
		move	#VENTILATOR,TEMET_Status(a2)
		addq	#1,TEMET_Venti_ON(a2)
		sub	d2,TEMET_Speed_Y(a2)
.End_Venti	rts

**************************************************************************************
*-------------------------------------------------------------------------------------
*---------------	FONTNE HANDLER
*-------------------------------------------------------------------------------------
Init_Fontne	*--*>Test which Fontne is free
		tst	Fontne_Free(a6)
		beq.s	.InitFontne
		rts
*-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
.InitFontne	*--*>Init Fontne to Akt Structure
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC

		*--*>Init Fontne Tab
		move.l	a4,-(sp)
		moveq	#ST_FONTNE,d0
		move	Bob_X_Position(a4),d1
		move	Bob_Y_Position(a4),d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		move.l	(sp)+,a4
		tst	d0
		bmi.s	.NOFontne

		move.w	#1,Fontne_Free(a6)

		clr.w	Fontne_Y_Pos(a6)
		clr.w	Fontne_Height(a6)
		clr.w	Fontne_Head_Anim(a6)
		clr.w	Fontne_Scroll_Pos(a6)

		move.w	#112,Fontne_Max_Height(a6)
		move.w	#4,Fontne_Speed_Up(a6)
		move.w	#6,Fontne_Speed_Down(a6)
		move.w	#8,Fontne_H_IAnmSpd(a6)
		move.w	#5,Fontne_H_AnmSpd(a6)
		move.w	#4,Fontne_Height(a6)
		move.b	#1,Fontne_UpDown_Flag(a6)
		move.b	#100,Fontne_Up_WaitTime(a6)
		move.w	Bob_X_Position(a4),Fontne_X_Pos(a6)
		subq.w	#8,Fontne_X_Pos(a6)

.NOFontne	rts
*-------------------------------------------------------------------------------------
Handle_Fontne:	*--*>Test which Fontne to Handle

.Handle_Fontne	*---*>Handle Act Fontne
.Change_Scroll_Offs	*--*>Durchscroll Offset ndern
		addq	#2,Fontne_Scroll_Pos(a6)
		and	#31,Fontne_Scroll_Pos(a6)
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Change_Y_Offset
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		*--Test Up/Down/Wait
		tst.b	Fontne_UpDown_Flag(a6)
		bne.s	.NoWait
		*--Warten
		subq.b	#1,Fontne_Up_WaitTime(a6)
		bne.s	.End_UpDownWait
		*--init Down
		move.b	#-1,Fontne_UpDown_Flag(a6)
.NoWait		*--test Up/Down
		tst.b	Fontne_UpDown_Flag(a6)
		bmi.s	.MakeDown
.MakeUp		*--Fontne nach oben
		move	Fontne_Speed_Up(a6),d0
		add	d0,Fontne_Height(a6)
		move	Fontne_Max_Height(a6),d0
		cmp	Fontne_Height(a6),d0
		bhi.s	.End_UpDownWait
		*--Init Wait on Top
		clr.b	Fontne_UpDown_Flag(a6)
		move.b	#25,Fontne_Up_WaitTime(a6)
		bra.s	.End_UpDownWait
.MakeDown	*--Fontne nach unten
		move	Fontne_Speed_Down(a6),d0
		sub	d0,Fontne_Height(a6)
		cmp	#6,Fontne_Height(a6)
		bgt.s	.End_UpDownWait
.Clear_Fontne	*--Clear_Fontne
		clr.w	Fontne_Free(a6)
		jmp	Out_Bob_Damage
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.End_UpDownWait	*--*>Calculate Koordinates LEVEL and ABSOLUTE
.Make_Y_Offset	*--X Offset in d6 (Make Y Offset)
		move	Water_YPos(a6),d5
		move	Fontne_Height(a6),d4
		sub	d4,d5
		move	d5,Fontne_Y_Pos(a6)
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Copy_Head	*---*>Animationsstufe ndern/ Head copieren
		subq	#1,Fontne_H_AnmSpd(a6)
		bpl.s	.Test_Which_Anim
		eor.w	#1,Fontne_Head_Anim(a6)
		move	Fontne_H_IAnmSpd(a6),Fontne_H_AnmSpd(a6)
.Test_Which_Anim

		*--*>Hier is wohl alles gemacht deshalb zeigt es !!!
		jsr	ShowFontne

		*--*>Test if TEMET is IN
		lea	(a6),a2
		clr.w	TEMET_in_Fontne(a2)
		*--Test_X
       		move	TEMET_X_Position(a2),d0
		sub	Fontne_X_Pos(a6),d0
		tst	d0
		bpl.s	.FontneLeft
.FontneRight	add	#32,d0
		tst	d0
		bmi	.NoFontKoll
		bra.s	.Test_Y
.FontneLeft	sub	#64,d0
		tst	d0
		bpl	.NoFontKoll
.Test_Y		*--Test_Y
		move	TEMET_Y_Position(a2),d0
		sub	Fontne_Y_Pos(a6),d0
		tst	d0
		bpl.s	.FontneUp
.FontneDown	add	#46,d0
		tst	d0
		bmi	.NoFontKoll
		bra.s	.FontKoll
.FontneUp	sub	Fontne_Height(a6),d0
		tst	d0
		bpl	.NoFontKoll
.FontKoll	*--*>init Ventilator and sub Y Speed
		cmp	#MOVER,TEMET_Status(a2)
		bne.s	.NoTEMET_On_Mover
	;*--*>Test if Endg
	;tst	ENDG
	;beq.s	.Normal
		*--*>Move Timet Normal
		move	#FALLEN,TEMET_Status(a2)
		subq	#4,TEMET_Y_Position(a2)

.Normal		*--*>Set TEMET in Fontne Flag
		move	#1,TEMET_in_Fontne(a2)
		bra.s	.NoFontKoll
.NoTEMET_On_Mover:

		cmp	#(Tekkno_EnemyVRam/32)+138,Boss_VRam(a6)	;Checken, obs der
		bne	.NoENDGAcce					;Endgegner ist!

		move	#2,TEMET_Shield_Flag(a2)
		clr.w	TEMET_Shield_Save(a2)
		move	#3*50,TEMET_Been_HitTimer(a2)
		sub	#$0180,TEMET_Speed_Y(a2)
.NoENDGAcce	tst	TEMET_Dir_Y(a2)
		bmi.s	.NoSecondSub
		sub	#$0100,TEMET_Speed_Y(a2)
.NoSecondSub	sub	#$0080,TEMET_Speed_Y(a2)
		subq	#2,TEMET_Y_Position(a2)
		move	#VENTILATOR,TEMET_Status(a2)
		clr.w	TEMET_Fly_Dir(a2)
		move	#-1,TEMET_Fly_Up_Val_Y(a2)
		move	#-1,TEMET_Fly_Up_Val_X(a2)
		addq	#1,TEMET_Venti_ON(a2)
.NoFontKoll	*--*>ENDE
		rts

*-------------------------------------------------------------------------------------
ShowFontne:
		lea	TWater_Obj0,a0
		tst.w	Fontne_Head_Anim(a6)
		beq.s	.Show_Head
		lea	TWater_Obj1,a0

.Show_Head	move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplay1
		move.w	Boss_VRam(a6),d3
		move.l	a0,-(sp)
		jsr	Add_Simple_Sigel
		move.l	(sp)+,a0
.NoDisplay1	move	Fontne_X_Pos(a6),d0
		add	#32,d0
		move	Fontne_Y_Pos(a6),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplay2
		moveq	#1,d2
		jsr	Add_Sigel
.NoDisplay2:

.Make_Body	*--*>
		move	Fontne_X_Pos(a6),-(sp)
		move	Fontne_Y_Pos(a6),-(sp)
		add	#30,Fontne_Y_Pos(a6)
		bsr	.Make_Da_Body
		move	(sp)+,Fontne_Y_Pos(a6)
		move	(sp)+,Fontne_X_Pos(a6)
		rts
*------------------------------------------------------
.Make_Da_Body
		move.w	Boss_VRam(a6),d3
		move	Fontne_Scroll_Pos(a6),d0
		sub	d0,Fontne_Y_Pos(a6)
		cmp	#24,d0
		blo.s	.OkNormal
		bra.s	.NoDisplayB2
.OkNormal	move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB1
		lea	TWater_Obj2,a0
		jsr	Add_Simple_Sigel
.NoDisplayB1
		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		add	#32,d0
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB2
		moveq	#1,d2
		lea	TWater_Obj2,a0
		jsr	Add_Sigel
.NoDisplayB2	addq	#8,Fontne_Y_Pos(a6)
		move	Water_YPos(a6),d0
		cmp	Fontne_Y_Pos(a6),d0
		bls	.ENDEGELNDE

		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB11
		lea	TWater_Obj3,a0
		jsr	Add_Simple_Sigel
.NoDisplayB11
		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		add	#32,d0
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB21
		moveq	#1,d2
		lea	TWater_Obj3,a0
		jsr	Add_Sigel
.NoDisplayB21	addq	#8,Fontne_Y_Pos(a6)
		move	Water_YPos(a6),d0
		cmp	Fontne_Y_Pos(a6),d0
		bls	.ENDEGELNDE


		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB12
		lea	TWater_Obj4,a0
		jsr	Add_Simple_Sigel
.NoDisplayB12
		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		add	#32,d0
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB22
		moveq	#1,d2
		lea	TWater_Obj4,a0
		jsr	Add_Sigel
.NoDisplayB22	addq	#8,Fontne_Y_Pos(a6)
		move	Water_YPos(a6),d0
		cmp	Fontne_Y_Pos(a6),d0
		bls	.ENDEGELNDE


		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB13
		lea	TWater_Obj5,a0
		jsr	Add_Simple_Sigel
.NoDisplayB13
		move	Fontne_X_Pos(a6),d0
		move	Fontne_Y_Pos(a6),d1
		add	#32,d0
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayB23
		moveq	#1,d2
		lea	TWater_Obj5,a0
		jsr	Add_Sigel
.NoDisplayB23	addq	#8,Fontne_Y_Pos(a6)
		move	Water_YPos(a6),d0
		cmp	Fontne_Y_Pos(a6),d0
		bls	.ENDEGELNDE

		bra	.OkNormal

.ENDEGELNDE	rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Venti_Up_Work:	*--Standart Routs
		move	Bob_Y_Position(a4),d0
		cmp	Water_YPos(a6),d0
		bls.s	.Venti_Up
		move.l	#Venti_Water_Rout,Venties_Bob_Rout(a4)
		jmp	Venti_Water_Rout
.Venti_Up	jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_TekknoObject
		tst	Venti_Off_But(a6)
		bne	Turn_Venti_Off
		*--*>Test if TEMET is in Venti
		lea	(a6),a2
		move	Bob_X_Position(a4),d0
		add	#24,d0
		sub	TEMET_X_Position(a2),d0
		sub	#16,d0
		move	Bob_Y_Position(a4),d1
		sub	TEMET_Y_Position(a2),d1
		sub	#16,d1
		bmi	.End_Venti
		cmp	#100,d1
		bhi	.End_Venti
		moveq	#-1,d7
		tst	d0
		bpl.s	.TEMET_LEFT
		neg	d0
		moveq	#1,d7
.TEMET_LEFT	move	#32,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA

		*--Init VentilatorSteering
		tst	TEMET_KollisionFlag(a2)
		beq.s	.okNotUpR
		*--Test Go Up
		cmp	#20,d0
		bhi	.End_Venti
		*--Go Up
		clr.w	TEMET_KollisionFlag(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		subq	#4,TEMET_Y_Position(a2)
.okNotUpR	move	#VENTILATOR,TEMET_Status(a2)
		addq	#1,TEMET_Venti_ON(a2)
		*--Make Y Speed
		move	#140,d2
		sub	d1,d2
		lsl	#2,d2
		sub	d2,TEMET_Speed_Y(a2)
		*--X Speed
		lsl	#1,d0
		tst	d7
		bpl.s	.AddSpeed
		sub	d0,TEMET_Speed_X(a2)
		rts
.AddSpeed	add	d0,TEMET_Speed_X(a2)
.End_Venti	rts 
*-------------------------------------------------------------------------------------
Venti_Down_Work:	*--Standart Routs
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_TekknoObject
		tst	Venti_Off_But(a6)
		bne	Turn_Venti_Off
		*--*>Test if TEMET is in Venti
		lea	(a6),a2
		move	Bob_X_Position(a4),d0
		add	#24,d0
		sub	TEMET_X_Position(a2),d0
		sub	#16,d0
		move	Bob_Y_Position(a4),d1
		sub	TEMET_Y_Position(a2),d1
		add	#16,d1
		bpl.s	.End_Venti
		neg	d1
		cmp	#100,d1
		bhi.s	.End_Venti
		moveq	#-1,d7
		tst	d0
		bpl.s	.TEMET_LEFT
		neg	d0
		moveq	#1,d7
.TEMET_LEFT		move	#48,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi.s	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA

		*--Init VentilatorSteering
		move	#VENTILATOR,TEMET_Status(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		addq	#1,TEMET_Venti_ON(a2)
		*--Make Y Speed
		move	#100,d2
		sub	d1,d2
		lsl	#1,d2
		add	d2,TEMET_Speed_Y(a2)
		*--X Speed
		lsr	#2,d0
		tst	d7
		bpl.s	.AddSpeed
		sub	d0,TEMET_Speed_X(a2)
		rts
.AddSpeed		add	d0,TEMET_Speed_X(a2)
.End_Venti		rts 
*-------------------------------------------------------------------------------------
Venti_Left_Work:	*--Standart Routs
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_TekknoObject
		tst	Venti_Off_But(a6)
		bne	Turn_Venti_Off
		*--*>Test if TEMET is in Venti
		lea	(a6),a2
		move	Bob_Y_Position(a4),d0
		sub	TEMET_Y_Position(a2),d0
		move	Bob_X_Position(a4),d1
		sub	TEMET_X_Position(a2),d1
		sub	#32,d1
		bmi.s	.End_Venti
		cmp	#100,d1
		bhi.s	.End_Venti
		tst	d0
		bpl.s	.TEMET_UP
.TEMET_DOWN		*--TEMET ist down
		neg	d0
		move	#48,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi.s	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA

		*--Init VentilatorSteering
		move	#VENTILATOR,TEMET_Status(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		addq	#1,TEMET_Venti_ON(a2)
		*--Make X Speed
		move	#100,d2
		sub	d1,d2
		sub	d2,TEMET_Speed_X(a2)
		*--Y Speed
		lsr	#2,d0
		add	d0,TEMET_Speed_Y(a2)
		rts 
.TEMET_UP		*--*>TEMET ist oben
		move	#48,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi.s	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA1
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA1

		*--Init VentilatorSteering
		move	#VENTILATOR,TEMET_Status(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		addq	#1,TEMET_Venti_ON(a2)
		*--X Speed berechnen
		move	#100,d2
		sub	d1,d2
		sub	d2,TEMET_Speed_X(a2)
		*--Y Speed
		lsr	#1,d0
		sub	d0,TEMET_Speed_Y(a2)
.End_Venti	rts
*-------------------------------------------------------------------------------------
Venti_Right_Work:	*--Standart Routs
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_TekknoObject
		tst	Venti_Off_But(a6)
		bne	Turn_Venti_Off
		*--*>Test if TEMET is in Venti
		lea	(a6),a2
		move	Bob_Y_Position(a4),d0
		add	#24,d0
		sub	TEMET_Y_Position(a2),d0
		sub	#24,d0
		move	Bob_X_Position(a4),d1
		sub	TEMET_X_Position(a2),d1
		add	#16,d1
		bpl	.End_Venti
		neg	d1
		cmp	#100,d1
		bhi.s	.End_Venti
		tst	d0
		bpl.s	.TEMET_Up
.TEMET_Down		*--TEMET ist down
		neg	d0
		move	#48,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi.s	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA
		*--Init VentilatorSteering
		move	#VENTILATOR,TEMET_Status(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		addq	#1,TEMET_Venti_ON(a2)
		*--Make X Speed
		move	#140,d2
		sub	d1,d2
		lsl	#1,d2
		add	d2,TEMET_Speed_X(a2)
		*--Y Speed
		lsr	#2,d0
		add	d0,TEMET_Speed_Y(a2)
		rts 
.TEMET_Up	*--*>TEMET ist up
		move	#48,d2
		move	d1,d3
		lsr	#1,d3
		add	d3,d2
		cmp	d2,d0
		bhi.s	.End_Venti

		*--*>Vielleicht doch nicht
		tst	STOP_Bumping(a6)
		beq.s	.WEITA1
		subq	#1,STOP_Bumping(a6)
		bra.s	.End_Venti
.WEITA1

		*--Init VentilatorSteering
		move	#VENTILATOR,TEMET_Status(a2)
		clr.w	TEMET_New_Calc_Flag(a2)
		addq	#1,TEMET_Venti_ON(a2)
		*--X Speed berechnen
		move	#140,d2
		sub	d1,d2
		lsl	#1,d2
		add	d2,TEMET_Speed_X(a2)
		*--Y Speed
		lsr	#1,d0
		sub	d0,TEMET_Speed_Y(a2)
.End_Venti	rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*----------------	TEKKNO FISCHE
*-------------------------------------------------------------------------------------
**************************************************************************************
TEKKNO_FISH_ANIM_TAB	dc.l	TFish_Swim_Right_Anm,TFish_Swim_Left_Anm
		dc.l	TFish_Wait_Right_Anm,TFish_Wait_Left_Anm
		dc.l	TFish_Dam_Right_Anm,TFish_Dam_Left_Anm
*-------------------------------------------------------------------------------------
TFISH_Right_Init:	*--*>Init Right fish
		move.b	#1,Fish_X_Dir(a4)
		bra.s	TFISH_Global_Init
TFISH_Left_Init:	*--*>Init Left fish
		move.b	#-1,Fish_X_Dir(a4)
		bra.s	TFISH_Global_Init
TFISH_Global_Init:	*--*>Init Globals
		move.w	#200,Bob_Out_X_Val(a4)
		move.w	#160+32,Bob_Out_Y_Val(a4)
		move.b	#MAX_FISH_RANGE/2,Fish_X_Range(a4)
		move.l	#Show_TekknoObject,Fish_Display(a4)
		move.l	#TEKKNO_FISH_ANIM_TAB,Fish_Anim_Tab(a4)
		move.l	#Fish_Routine,Bob_Routine(a4)
		rts
*-------------------------------------------------------------------------------------
TFish_Dam_Right_Anm:	dc.w	3
		dc.l	TFish_Obj3,0
		dc.w	ENTRY_END
		dc.l	TFish_Dam_Right_Anm
TFish_Wait_Right_Anm:	dc.w	1
		dc.l	TFish_Obj1,0
		dc.w	ENTRY_END
		dc.l	TFish_Swim_Right_Anm
TFish_Swim_Right_Anm:	dc.w	1
		dc.l	TFish_Obj1,0
		dc.w	1
		dc.l	TFish_Obj2,0
		dc.w	ENTRY_END
		dc.l	TFish_Swim_Right_Anm
TFish_Dam_Left_Anm:	dc.w	2
		dc.l	TFish_Obj3,0
		dc.w	ENTRY_END
		dc.l	TFish_Dam_Left_Anm
TFish_Wait_Left_Anm:	dc.w	0
		dc.l	TFish_Obj1,0
		dc.w	ENTRY_END
		dc.l	TFish_Swim_Left_Anm
TFish_Swim_Left_Anm:	dc.w	0
		dc.l	TFish_Obj1,0
		dc.w	0
		dc.l	TFish_Obj2,0
		dc.w	ENTRY_END
		dc.l	TFish_Swim_Left_Anm

**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	STACHEL
*-------------------------------------------------------------------------------------
**************************************************************************************
Stachel_Next_Entry	=Bob_Koords_Save1	;LW

**************************************************************************************
*-------------------------------------------------------------------------------------
*----------------	INIT Routs
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Init_Stachel_Norm:
		*--*>Init Stachel Normal
		move.l	#Stachel_Norm,Bob_Routine(a4)
		rts
*-----------------------------------------------------------------------------------
Init_Stachel_UD	*--*>Init Stachel Normal
		move.l	#Stachel_UD,Bob_Routine(a4)
		rts
*-----------------------------------------------------------------------------------
Init_Stachel_S_Wave	*--*>Init Stachel Normal
		move.l	#Stachel_Wave_Slave,Bob_Routine(a4)
		rts
*-----------------------------------------------------------------------------------
Init_Stachel_Wave_R	*--*>Init Stachel Wave Rechts
		move.l	#Stachel_Wave_Master,Bob_Routine(a4)
		move.l	a4,a5
		*--*>Get Stachel Entrys
		*--get six Entrys
		moveq	#6,d0
		jsr	Get_Entry_Adrs_HI
		tst	d0
		bne	.EndStachel_Wave

		*--*>Enter Bobs
		lea	ENTRY_ADRS(a6),a0
		lea	Area_Enter_Vector(a6),a1
		move	Bob_X_Position(a5),d5
		sub	#16,d5
		move	Bob_Y_Position(a5),d6

		*--Init Wave L1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		sub	#16,d1
		move.l	(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave03,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave L2
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		sub	#32,d1
		move.l	4(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave02,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave L3
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		sub	#48,d1
		move.l	8(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave01,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave R1
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		add	#16,d1
		move.l	12(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave05,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave R2
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		add	#32,d1
		move.l	16(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave06,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave R3
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		add	#48,d1
		move.l	20(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave07,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	#-1,Stachel_Next_Entry(a4)
		rts
.EndStachel_Wave	*--*>Bob Austragen
		move.l	a5,a4
		jsr	Out_Bob
		rts
*-----------------------------------------------------------------------------------
Init_Stachel_Wave_L	*--*>Init Stachel Wave Links
		move.l	#Stachel_Wave_Master,Bob_Routine(a4)
		move.l	a4,a5
		*--*>Get Stachel Entrys
		*--get six Entrys
		moveq	#6,d0
		jsr	Get_Entry_Adrs_HI
		tst	d0
		bne	.EndStachel_Wave

		*--*>Enter Bobs
		lea	ENTRY_ADRS(a6),a0
		lea	Area_Enter_Vector(a6),a1
		move	Bob_X_Position(a5),d5
		sub	#16,d5
		move	Bob_Y_Position(a5),d6

		*--Init Wave L1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		sub	#16,d1
		move.l	(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave05,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave L2
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		sub	#32,d1
		move.l	4(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave06,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave L3
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		sub	#48,d1
		move.l	8(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave07,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave R1
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		add	#16,d1
		move.l	12(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave03,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave R2
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		add	#32,d1
		move.l	16(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave02,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	a4,a5
		*--Init Wave R3
		lea	Area_Enter_Vector(a6),a1
		move	#ST_STACHEL_02,d0
		move	d6,d2
		move	d5,d1
		add	#48,d1
		move.l	20(a0),a4
		jsr	ENTER_BOB
		move.l	#Stachel_Anim_Wave01,Bob_Next_Anim(a4)
		move.l	#Init_Stachel_S_Wave,Bob_Routine(a4)
		move.l	a4,Stachel_Next_Entry(a5)
		move.l	#-1,Stachel_Next_Entry(a4)
		rts
.EndStachel_Wave	*--*>Bob Austragen
		move.l	a5,a4
		jsr	Out_Bob
		rts

*-----------------------------------------------------------------------------------
*-----------	MAIN Routs
Stachel_Norm	*--*>Make Stachel Norm
		jsr	Test_Bob_Out
		jsr	Test_Stachel_TEMET_Hit
		jsr	Show_TekknoObject
		rts
*---------------------------------------------------------------------------
Stachel_UD	*--*>Make Stachel Norm
		jsr	Standart_BobAnim
		jsr	Test_Bob_Out
		jsr	Test_Stachel_TEMET_Hit
		jsr	Show_TekknoObject
		rts
*---------------------------------------------------------------------------
Stachel_Wave_Master	*--*>Master Stachel Wave
		jsr	Standart_BobAnim
		jsr	Test_Stachel_TEMET_Hit
		jsr	Test_Bob_Out
		jsr	Show_TekknoObject
		*--*>Test if Wave Should be out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		bne.s	.Back
		*--*>Out Wave
.Wave_Out_Loop	cmp.l	#-1,Stachel_Next_Entry(a4)
		beq.s	.Back
		move.l	Stachel_Next_Entry(a4),a4
		move.b	#BOB_FALSE,Bob_Used(a4)
		bra.s	.Wave_Out_Loop
.Back		*--*>Back
		rts
*---------------------------------------------------------------------------
Stachel_Wave_Slave	*--*>Slave Stachel Wave
		jsr	Standart_BobAnim
		jsr	Test_Stachel_TEMET_Hit
		jsr	Show_TekknoObject
		rts
*---------------------------------------------------------------------------
Test_Stachel_TEMET_Hit:
		cmp.l	#TSpike_Obj0,Bob_SigelInfo(a4)
		beq.s	.NoTest
		cmp.l	#TSpike_Obj1,Bob_SigelInfo(a4)
		beq.s	.NoTest
		jsr	Test_TEMET_Hit
.NoTest		rts
**************************************************************************************
*---------------------------------------------------------------------------
*----------------	ANIM Tabs
Stachel_Anim_Norm	*--*>Stachel Norm Anim
		dc.w	0
		dc.l	TSpike_Obj3
		dc.w	0,1
		dc.w	ENTRY_END
		dc.l	Stachel_Anim_Norm
*---------------------------------------------------------------------------
Stachel_Anim_UD	*--*>Stachel Up Down Anim /Wave Anim
Stachel_Anim_Wave01
		dc.w	0
		dc.l	TSpike_Obj3
		dc.w	0,1

Stachel_Anim_Wave02
		dc.w	0
		dc.l	TSpike_Obj2
		dc.w	0,1
Stachel_Anim_Wave03
		dc.w	0
		dc.l	TSpike_Obj1
		dc.w	0,9

Stachel_Anim_Wave04
		dc.w	0
		dc.l	TSpike_Obj0
		dc.w	0,9
Stachel_Anim_Wave05
		dc.w	0
		dc.l	TSpike_Obj0
		dc.w	0,9
Stachel_Anim_Wave06
		dc.w	0
		dc.l	TSpike_Obj0
		dc.w	0,9
Stachel_Anim_Wave07
		dc.w	0
		dc.l	TSpike_Obj1
		dc.w	0,9
Stachel_Anim_Wave08
		dc.w	0
		dc.l	TSpike_Obj2
		dc.w	0,1
		dc.w	ENTRY_END
		dc.l	Stachel_Anim_UD
*---------------------------------------------------------------------------

**************************************************************************************
	ENDC